use-hydrate-server-configurations.ts 795 B

12345678910111213141516171819202122
  1. import { useHydrateAtoms } from 'jotai/utils';
  2. import {
  3. showPageLimitationXLAtom,
  4. registrationWhitelistAtom,
  5. } from '~/states/server-configurations';
  6. import type { ServerConfigurationProps } from './types';
  7. /**
  8. * Hook for hydrating server configuration atoms with server-side data
  9. * This should be called early in the app component to ensure atoms are properly initialized before rendering
  10. */
  11. export const useHydrateServerConfigurationAtoms = (
  12. serverConfig: ServerConfigurationProps['serverConfig'] | undefined,
  13. ): void => {
  14. // Hydrate server configuration atoms with server-side data
  15. useHydrateAtoms(serverConfig == null ? [] : [
  16. [showPageLimitationXLAtom, serverConfig.showPageLimitationXL],
  17. [registrationWhitelistAtom, serverConfig.registrationWhitelist],
  18. ]);
  19. };